package com.gitee.wsl.struct.grammar.ast.node.builder

import com.gitee.wsl.struct.grammar.ast.node.ASTNode
import com.gitee.wsl.struct.grammar.ast.node.CompositeNode
import com.gitee.wsl.struct.grammar.ast.node.NodeType


interface ASTNodeBuilder {

    fun createLeafNodes(type: NodeType, startOffset: Int, endOffset: Int): List<ASTNode>

    fun createCompositeNode(type: NodeType, children: List<ASTNode>): CompositeNode

}

open class NodeBuilder():ASTNodeBuilder{
    override fun createLeafNodes(type: NodeType, startOffset: Int, endOffset: Int): List<ASTNode> {
        TODO("Not yet implemented")
    }

    override fun createCompositeNode(type: NodeType, children: List<ASTNode>): CompositeNode {
        TODO("Not yet implemented")
    }

}